import { clone } from "es-toolkit";

/**
 * @desc: 删除数组中的指定字段，主要用于删除树形结构中不需要的字段，主要是parentId字段，其他也可以自定义值
 * @param {*} data<array> 数据源
 * @param {*} name<string> 字段名
 * @param {*} children 如果数组中存在children字段，则递归删除children字段
 */
export function removeTreeFields(data: any[], name: string = 'parentId', children: any = 'children') {
  data.forEach((item) => {
    if (item[name] || item[name] == 0) {
      delete item[name];
    }
    if (children && item[children]) {
      removeTreeFields(item[children], name, children);
    }
  })
  return data
}

// 获取操作人，新建或修改时设置该值
export function getOperator(ctx: any) {
  return ctx.session.userInfo.userName
}

// 克隆
export function deepClone(obj: any) {
  return clone(obj)
}
